package com.muchfish.reactor.api;
import reactor.core.publisher.Flux;

public class ReactorExpandExample {
    public static void main(String[] args) {
        Flux<Integer> source = Flux.just(1, 2, 3);

        // 对数据流进行递归操作，每个元素产生两个新元素
        source.expand(value -> Flux.just(value * 2, value * 3))
                .take(22) // 限制产生的元素数量
                .subscribe(System.out::println);

        //原始   新元素 ->新元素 ->新元素...
        //1 2 3   -> 2 3  4 6  6 9 ->4 6  6 9     8 12  12 18    12 18   18 27 -> 8 ...

    }
}
